package c05面向对象;

class A {
	private int i = 0;
	public String s = "A";

	public void print() {
		System.err.println(s);
	}
}

public class 父类与子类 extends A {

	public String s = "父类与子类";

	public void print() {
		System.err.println(s);
	}

	public static void main(String[] args) {
//		i=1;//父类的私有属性在子类是不可见的！

		A a = new A();
		父类与子类 b = new 父类与子类();
		a.print();
		b.print();
		a = b;
		a.print();

		父类与子类 b3 = new 父类与子类();
		b3 = (父类与子类) a;//a已经指向过b，b是A的一个子类对象，b3也是A的一个子类对象，这里才不会出错！
		b3.print();

		A a2 = new A();
		父类与子类 b2 = new 父类与子类();
		b2 = (父类与子类) a2;//这里a2并不知道b2是A的一个子类对象，所以出错了1
		b2.print();


	}

}
